home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
scope
/
126-150
/
scopedisk146
/
liner
/
docs
/
'liner.doc
< prev
next >
Wrap
Text File
|
1995-03-19
|
15KB
|
276 lines
'Liner
Version 2.00
---------------------------------------------------------------------------
'Liner V2.00 is copyright ©1988, 1989, 1990 by Dave Schreiber. All
rights reserved. YAFR V1.21 is also copyright ©1989 by Dave Schreiber.
All rights reserved.
'Liner may be freely distributed as long as the following terms are
observed:
1. 'Liner is distributed without cost, except for the cost of media,
copying, shipping, labels, and any applicable taxes.
2. All copyright messages in 'Liner, its source code, and its
documentation are not changed.
3. If you use code from 'Liner in other programs, please note this
along with 'Liner's copyright message in the documentation and/or
source code.
After long deliberation, I've decided to make 'Liner shareware. If you
use 'Liner, I donation of $10 would be greatly appreciated, as well as
acting as a motivator for me to enhance the program (see the end of
this file for ideas I have for future improvements). My address is below,
and I encourage you to send in suggestions, bug reports, etc. even if you
don't send in an donation. Thanks.
I also request that if you distribuate 'Liner, you keep the source code
with the executable program.
I'd like to give special thanks to Chad Netzer, who has tolerated being
a beta-tester for 'Liner V2.00 for a long time. His thoroughness has
insured that almost all of 'Liner bugs have been exterminated. I
appreciate his work very much.
Once upon a time I tried writing a long outline with a word
processor. It was also the last time. I wrote 'Liner so I could leave
the mundane parts of writing an outline to the computer. In essence,
what 'Liner does is to let you type into an outline form, allowing you
rearrange blocks of text without having to renumber everything. It has
most of the features of commercial outliners, although it is missing a
few, like the ability to 'collapse' an outline. It also has a few
features that I haven't seen on commercial outliners, such as an ARexx
port.
Before starting 'Liner, you should assign liner: to the directory
that you have placed 'Liner into. The preferences for 'Liner will also
be stored in that directory. Once that's done, the program can be
started from either Workbench or the CLI. From Workbench, double click
on the icon, or double click on the icon of an outline that you wish to
work on. From the CLI, type either:
1> RUN 'LINER
or just:
1> 'LINER
Once you get in 'Liner, and assuming you haven't double clicked on an
outline's icon, you are presented with a I.: this is the first line of a
new outline. You can either load an old outline (see below) or start
typing a new one. I've included a sample outline for you to practice on,
called Sample_Outline. If you double clicked on an outline's icon, you
can go straight to editing, as the old outline will have already been
loaded.
Editing a document once you typed it in is fairly straightforward.
The arrows keys work normally when used by themselves, and you can also
position the cursor by pointing with the pointer and pressing the left
mouse button. Shift-left-arrow and shift-right-arrow move the cursor a
word at a time, instead of a letter at a time. Shift-up-arrow moves up
one screenful of text, while shift-down-arrow moves down the same amount.
Control-left-arrow and control-right-arrow move the cursor to the
beginning and end of a line, respectively. Control-up-arrow moves to the
top of the documents, and control-down-arrow moves to the end. The TAB
key controls what level the current line of text is in. For example,
type a line and press TAB. The line moves in and the number or letter in
front of it changes. For example:
I. This is a test
would turn into:
A. This is a test
Shift-TAB has the opposite effect.
Performing operations on blocks of text requires that you highlight
the text you want to manipulate. There are two forms of highlighting in
'Liner: character and line. Character highlighting involves
highlighting individual characters on one line only. To do it left to
right, double click on the first character you want to highlight, then
double click on the character after the last character you want to
highlight. To do it the other way, just double click on the first and
last character. Once you have highlighted your text, you can replace it
with other text (just start typing), cut, copy, and delete it (see the
Edit menu description below, or press backspace or DEL).
Line highlighting is similar to character highlighting: for both
directions double click on the first and last lines. There are several
things you can do with a highlighted block of lines: you can shift the
entire block of text in and out with TAB and the SHIFT-TAB combination,
you can delete a block of lines by pressing the backspace key, and you
can cut and paste (again, see the Edit menu instructions below).
Version 2.00 of 'Liner now supports something version 1.32 didn't:
multiple lines per number. If you are typing in some text and you reach
the end of the line, press SHIFT-RETURN to get another line, known as a
"continuation." A continuation is the same as a regular line, except
that it has no number before it, and is "attached" to the regular line
above it; in effect, a parent and its continuations act as a single
unit. If you TAB a parent line in or out, to change its level, its
continuation lines will also be TAB'd in or out. You cannot break apart
a block of continuation lines with a regular line (you can have as many
continuations attached to a regular line, as you wish). If you highlight
a block of continuation lines and CUT them, the lines highlighted are
deleted, but all the continuation lines in that block are put into the
clipboard (this is to prevent being able to paste continuation lines
without a parent to control their attributes). Trying to delete a parent
without deleting its children at the same time isn't allowed. COPYing
continuation lines will also include the entire block.
'Liner uses five menus. The first, 'Project', holds what you'd
expect it to: 'New', 'Open', 'Save', 'Save As', 'Print', 'About', and
'Quit'. Functions that could result in a loss of data ('New', 'Open',
and 'Quit') ask for confirmation before performing their function (they
will not ask, however, if the outline hasn't been changed since it was
last saved. Note that you can tell if an outline has been changed by
looking at the title bar: an asterisk will appear if the file has been
changed, and will dissappear when the outline is saved).
(Now is a good time to note that the file format of 2.00 is
different than that of 1.32. The addition of continuations made it a
necessity; I also took the opportunity to make the format more compact.
In any case, 'Liner 2.00 can read both 1.32 and 2.00 files, but writes in
the 2.00 format only (so someone with 1.32 couldn't read a file saved
with 2.00)).
Of all of the 'Project' menu's items, the 'Print' item is the only
one that could be ambiguous. It has two sub-items that let you chose
where you want the printout to go. 'To Printer' sends it, naturally, to
the printer (the number of lines per page is equal to the value in the
'Length' variable in Preferences, minus one. 'To Disk' saves it as an
ASCII file (please note, however, that 'Liner cannot read in ASCII files
and convert them into outlines).
The next menu is Edit, which is again fairly standard. 'Cut',
'Copy', 'Paste', and 'Erase' do exactly what their names imply. However,
their operation depends slightly on what is being manipulated. With text
on just one line, when it's cut, it's put in the Clipboard (pause, while
the whole Amiga community gasps in shock and surprise...yes, that's
right, the Clipboard). What this means is that 'Liner can share text
with any other application that supports the Clipboard, such as NotePad.
Of course, hardly any programs support the Clipboard, but the text had to
go somewhere and the Clipboard seemed the best place to put it. (however
the clipboard is not used when a number of lines is pasted (although an
ASCII copy of the CUT or COPYed lines is stored in the clipboard)). When
'Paste' is selected, what is pasted is whatever was last cut, i.e. if a
number of lines were cut, they'll be pasted back in again, but if text on
one line is cut or copied, whatever is in the Clipboard will be pasted
into the outline ('Liner defaults to text and not line pastes on
startup).
The next menu is the 'Search' menu. The first item,
'Search/Replace', controls the searching and replacing capabilities of
'Liner. When selected, a requestor pops up that let you enter the search
string and the string to replace it with. It also lets you select
whether the search will be case sensitive, whether the search string can
be embedded in another word, and whether or not a replace is performed.
Once finished, clicking on OK does the search. Clicking on Cancel
cancels the search and replaces what was entered in the requestor with
what was there before the requestor was brought up (the close gadget has
the same effect as Cancel). Wait cancels the search as well, but keeps
the new information entered in the requestor.
There are two other items in the 'Search' menu. 'Next' searches for
(and replaces if that was selected) the next instance of the search
string. 'Replace All' does a global search/replace, either with
verification before doing the replace (where you can chose to go ahead,
skip that occurance, or cancel altogether), or without verification.
The Prefs menu contains a number of items that let you control
various aspects of 'Liner and your document. 'Double spacing' switches
between, surprise, single and double spacing (a check appears next to
this item when double spacing is selected). 'Interlace" lets you choose
between an interlaced and non-interlaced display. 'Icons', when
selected, tells 'Liner to create an associated icon whenever it saves an
outline and when it saves the preferences. When not selected, no icons
are created.
'Starting Level' determines which symbols are used on what level.
For example, on the default setting of "I.", the first level uses Roman
numerals, then capital letters, etc. all the way down to small letters
with parenthesis. If you were to choose "1.", it would go 1. a. 1) a) I.
A. instead of I. A. 1. a. 1) a). This is to let you do things like lists
or top-down designs where the information should be numbered with Arabic
numerals or start with some other symbol.
The next two items control the remaining aspects of the display.
'Screen colors' lets you adjust the colors of the screen (a gadget marked
'Reset' will undo any color changes you make before you close the color
selection window). 'Screen size' is used to determine whether or not the
screen will be overscanned: if 'Standard' is selected, the screen
display will be 640x200 or 640x400 (depending on the 'Interlace' menu
item). If 'Workbench' is selected, the screen will be as tall as your
Workbench screen, so those of you with overscanned Workbenches can have
an overscanned 'Liner display as well.
'Define Macros' I will skip for the time being and move on to the
last two items. 'Load prefs' loads the preferences for 'Liner off the
disk; its useful for when you've made a bunch of preferences changes to
'Liner and want to undo them all. 'Save Prefs' saves the current 'Liner
settings (which includes the directories used when you last SAVEed or
OPENed a document, and when you last printed a document to disk) to the
file liner:liner.prefs, which is read upon startup in order to set the
default 'Liner preferences.
The final 2.00 feature I've included is a two-way ARexx port. A
list of the 'Liner ARexx commands, along with descriptions and usage
guidelines, can be found in the file ARexx_Commands. There are also
example scripts that can help you get a feel for using ARexx with 'Liner.
Not only can 'Liner ARexx macros be run from the CLI; they can be
run from within 'Liner itself. Up to four macros can be assigned to the
items under the menu 'ARexx'; they and the names they go under in the
ARexx menu are defined using the 'Define Macros' item under the 'Prefs'
menu.
Finally, as a last note, I should explain the file requestor that is
used by 'Liner. It's called YAFR (for Yet Another File Requestor) and
was written by me partially as an excercise, partially because I wanted a
Charlie Heath style file requestor (i.e. one that didn't make you wait
until it had read all of the directory before letting you make a
selection) but couldn't figure out how to put the ARP one or any of the
others into 'Liner. It has a list of 11 buttons that list the first ten
AmigaDOS volume devices plus the PIPE: device that came with 1.3
(although it knows not to try and get a directory from that). The list
displays only what you have; buttons for floppy drives disappear when
the floppy is removed from that drive and reappear when a floppy is
inserted. There is a button that lets you choose whether or not to
display .info files (I'll let you guess which one). The default is not
to show them. Finally, If you want to display only files that conform to
a specific file pattern, there is a box for that.
Now that I've explained the operation of the program, it's time for
a little more technical stuff. 'Liner was compiled with Lattice C V5.04;
most of the source is included. The source that isn't included is:
minrexx.o (part of Tomas Rockiki's minrexx distribution), minrexx.h (also
part of the minrexx package), rexxglue.o (on the commercial ARexx disk
itself), and YAFR.c (part of a separate distribution called YAFR 1.21,
which is already out there and should be appearing on Fred Fish and
elsewhere in the near future). Everything else is present. To compile,
assign linersrc: to the directory 'Liner is in, CD to that directory, and
run lmk; the Makefile will take care of everything. If you want to do
it the hard way, compile all the .c files and blink them using liner.lnk.
Finally, I'd like to outline (!) my future plans for 'Liner. I'm
expecting to release a version 2.10 by the end of the year that will have
bug fixes and support for Workbench/Kickstart 2.0 features (such as the
WB 2.0 file requestor, color requestor and productivity mode). It will
probably _require_ WB/KS 2.0. In the far future, I'm hoping to add
support for multiple simultaneous outlines, better highlighting, a less
kludgy method of multiple-line support, and a scroll bar. Do you have
any suggestions? My address is below.
That's it! If you have any questions, comments, bug reports
especially, I can be reached at:
Usenet: davids@slugmail.ucsc.edu
US Mail: Dave Schreiber
1234 Collins Lane
San Jose, CA 95129-4208 (during the summer, but
mail that comes to that address will be forwarded
to me if I'm at school).